13. BSD 유닉스 3화 – BSD 유닉스 시작
BSD 유닉스의 시작
1976년 켄 톰슨이 벨 연구소로 돌아가자, 빌 조이와 척 핼리는 유닉스 커널 내부를 직접 해킹하기 시작한다.
음.. 유닉스 커널에서 이 부분을 개선하면 성능이 좋아질 것 같아.
그래? 우리가 직접 커널을 고쳐보는 거야.
그런데, 다른 대학에서 우리가 작업한 파스칼 컴파일러를 복사해 달라고 하는데?
그래? 그러면 파스칼이랑 ex 편집기를 함께 묶어서 배포해 보자.
1977년 초, 빌 조이는 파스칼 시스템과 ex 편집기를 묶어 버클리 소프트웨어 배포판(BSD, Berkeley Software Distribution)을 만들었다. 초기 BSD는 독립적인 운영체제가 아니라 기존 유닉스에 추가로 설치하는 소프트웨어 모음이었다. 이후 약 1년 동안 30여 개의 복사본을 발송했다.[1]
테이프를 30개나 복사해야겠네.
당시 BSD는 지금처럼 자유롭게 재배포할 수 있는 소프트웨어가 아니었다. 배포를 받으려면 AT&T 유닉스 소스 라이선스가 필요했고, 버클리는 실비 수준으로 테이프와 배포 비용을 받았다.[2]
이미 유닉스 소스 라이선스를 갖고 있으면 테이프값과 배송비만 비용이 듭니다.
버클리에는 연구용 소프트웨어를 서로 나누는 문화가 이미 자리 잡고 있었다. BSD도 그 전통을 이어갔다. 또한 이 당시 빌 조이가 BSD 유닉스를 실비만 받고 무료로 제공한 이유는 당시 버클리 대학이 갖고 있는 자유 스피치 운동, 히피 문화, 반전 운동에 영향을 받았다고 한다. [2]

유닉스의 확산에는 대학과 연구기관이 소스코드를 포함한 유닉스를 적은 라이선스 비용으로 받을 수 있었다는 점도 크게 작용했다.[2][6]
유닉스를 갖고 있는데,
반독점 합의 때문에
컴퓨터 사업에 진출할 수 없다니...
그렇다고 제품으로 따로 팔 수도 없고...
두 번째 배포판 2BSD
첫 번째 BSD가 배포된 뒤, 빌 조이는 사용자 피드백을 받아 파스칼 시스템을 개선했다. 여기에 vi 편집기(ex의 비주얼 모드)와 C 셸 등을 묶은 두 번째 배포판, 2BSD가 만들어졌다. 이후 약 1년 동안 75개 가까운 테이프가 발송되었다.[1][5]
빌 조이는 버그 수정뿐 아니라 배포 요청을 받는 일, 테이프 복사와 발송까지 도맡았다.
아, BSD 배포판이 필요하다고요?
다른 대학교에서도 BSD 배포판을 보내달라고 하네.
커널 성능 개선! 버그 잡고!
테이프 또 복사
1978년, 버클리에 들어온 VAX
리처드 페이트만 교수팀에서 VAX를 도입한대. 32비트 컴퓨터인데, 메모리가 무려 1MB라네..
그래? 거기에 유닉스를 설치하면 좋겠다.
이미 VAX용 유닉스(32/V)를 벨 연구소로부터 받았대.
안녕하세요. 버클리 대학원생 오잘프 바바오글루입니다.
지도 교수 요청으로 VAX용 유닉스에 가상 메모리를 구현하고 있는데, 코드 좀 한번 봐주시면 좋겠습니다.
좋죠, 한번 코드를 봅시다.
오잘프는 도메니코 페라리 교수의 지도 아래 가상 메모리를 구현하고 있었다. 빌 조이는 이 코드를 32/V에 통합하고 버그를 잡는 작업에 합류했다.[1][4]
당시 32/V는 VAX 하드웨어의 가상 메모리 기능을 활용하지 못해, 프로그램이 쓸 수 있는 공간이 실제 메모리 크기에 묶여 있었다. 리처드 페이트만 교수의 컴퓨터 대수학 시스템 Macsyma 연구에는 더 큰 주소 공간이 필요했다. Macsyma는 1960년대 말 MIT에서 개발되기 시작한 컴퓨터 대수학 시스템으로, 수식의 인수분해, 미분, 적분 등을 수행했다. 참고로, 가상 메모리는 디스크를 활용해 프로그램에 실제 메모리보다 큰 주소 공간을 제공한다.[1]
디버깅은 1978년 말 연말 휴가에도 계속되었다.
연말인데 어디 안 가나요?
VAX 사용자 별로 없을 때, 빨리 가상 메모리를 구현해야죠.
1979년 1월, 대부분의 버그가 잡혔다.[1]
자 이제 가상 메모리가 추가된 유닉스를 실행해 볼까?
드디어 문제 없이 잘 동작합니다.
빌 조이는 ex와 vi, C 셸 등 2BSD의 도구를 VAX로 이식했고, 파스칼 시스템은 피터 케슬러와 마샬 커크 맥퀴식이 맡았다. 이 소프트웨어와 32/V의 기본 도구, 오잘프와 빌 조이가 함께 통합·디버깅한 가상 메모리 커널을 묶은 3BSD가 1979년 12월 배포되었다.[1]
드디어 32bit 버전 BSD를 발송하는구나.
미국 방위고등연구계획국(DARPA, Defense Advanced Research Projects Agency)의 연구기관들을 연결하는 ARPANET은 이미 1969년부터 운영되고 있었다.[3] 하지만 기관마다 컴퓨터와 운영체제가 달라 소프트웨어를 포팅하거나 다시 개발하는데 많은 비용이 들었다. DARPA는 그 대안으로 이식성이 높은 유닉스에 관심을 보였고, 버클리 대학이 여러 기관에 성공적으로 배포한 3BSD를 주목하기 시작했다.[1]
역시 BSD야. VAX에서도 잘 동작하네!
끝.
이 만화의 대사는 당시 기록을 바탕으로 재구성한 것으로, 실제 발언을 그대로 인용한 것은 아닙니다.
참고 문헌
- 마샬 커크 맥퀴식, Twenty Years of Berkeley Unix, 1999. 한국어판: 버클리 유닉스의 20년, 《오픈소스 혁명의 목소리》, 한빛출판사, 2013.
- Andrew Leonard, BSD Unix: Power to the people, from the code, Salon, 2000.
- SRI International, ARPANET. ARPANET의 기원과 1969년 첫 통신.
- Ozalp Babaoglu, 개인 소개. 버클리 대학원 시절의 유닉스 가상 메모리 연구.
- The Unix Heritage Society (TUHS), 2BSD 원본 배포 아카이브.
2bsd.tar.gz의 설치 문서install.ms와 소스코드. - Warren Toomey, The Strange Birth and Long Life of Unix, IEEE Spectrum, 2011.